package cn.zebra.dev.base.module.admin.service;

import cn.zebra.dev.base.module.admin.entity.BaseAdmin;

/**
 * 后台用户接口约束 用于固定传参格式<br/>
 * 适用于不同的Dao层<br/>
 * Mybatis(Plus)、Hibernate(JPA)
 *
 * @author runnable@sina.cn
 */
public interface BaseAdminService<T extends BaseAdmin> {
    /**
     * 根据账号查找用户
     *
     * @param account 用户账号
     * @return 如果存在返回后台用户对象 不存在返回null
     */
    BaseAdmin findAdminByAccount(String account);

    /**
     * 根据后台用户id和salt和当前密码重置密码信息
     *
     * @param adminId  后台用户id
     * @param salt     盐
     * @param password 当前用户密码(明文)
     * @return 成功重置返回true  失败返回false
     */
    Boolean resetPassword(Long adminId, String salt, String password);

    /**
     * 根据用户id查找用户
     *
     * @param id 后台用户id
     * @return 后台用户
     */
    BaseAdmin findById(Long id);
}
